package com.ls.fw.data.search.impl.dao;

import java.io.Serializable;
import java.util.List;

import org.apache.lucene.document.Document;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;

import com.ls.fw.data.bean.PageBean;



/**
 * lucene搜索服务接口
 * @author ls
 * 2014年12月13日上午10:40:45
 */
public interface EntitySearchDao<M, PK extends Serializable> extends SearchDao{//

	public M doc2Obj(final Document doc,final Query query,final boolean high);		
	


	/**
	 * 
	 * @author lisheng
	 * @date 2015年1月3日 下午2:18:30
	 * @version V1.0
	 * @param doc
	 * @return
	 */
	M doc2Obj(Document doc);

	
	public void save(final M model) ;
	
	public void save(final List<M> list) ;
	
	public void update(final M model,final PK id) ;
	
	public void delete(final PK id) ;
	
	public void deleteAll() ;
	
	public void delete(final String fkname,final PK id) ;

	PageBean query(Query query, Sort sort, int page, int pageSize,boolean high);

}
